package com.erli.exchange.common.sg.config;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlTransient;

import lombok.Data;

@Data
@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso({ EntityClassInfo.class, ModelClassInfo.class, ConverterClassInfo.class, ServiceClassInfo.class, ServiceImplClassInfo.class, DaoClassInfo.class,
		DaoImplClassInfo.class, MapperClassInfo.class})
public class BaseClassInfo {
	
	@XmlAttribute
	private String module;

	@XmlAttribute(name = "package")
	private String packagePath;

	@XmlAttribute
	private String classNameSuffix;
	
	@XmlAttribute
	private String classNamePrefix;
	
	@XmlAttribute
	private String extendsTemplate;

	@XmlElement(name = "annotationlist")
	private AnnotationListInfo annotationListInfo;

	@XmlElement(name = "importlist")
	private ImportListInfo importListInfo;
	
	@XmlAttribute
	protected boolean fileExistsDelete;
	
	@XmlElement(name = "id-importlist")
	private IdImportListInfo idImportListInfo;

	@XmlElement(name = "id-annotationlist")
	private IdAnnotationListInfo idAnnotationListInfo;
	
	@XmlTransient
	public String getModule() {
		return module;
	}

	@XmlTransient
	public String getPackagePath() {
		return packagePath;
	}

	@XmlTransient
	public String getClassNameSuffix() {
		return classNameSuffix;
	}

	@XmlTransient
	public String getClassNamePrefix() {
		return classNamePrefix;
	}

	@XmlTransient
	public String getExtendsTemplate() {
		return extendsTemplate;
	}

	@XmlTransient
	public AnnotationListInfo getAnnotationListInfo() {
		return annotationListInfo;
	}

	@XmlTransient
	public ImportListInfo getImportListInfo() {
		return importListInfo;
	}

	@XmlTransient
	public IdImportListInfo getIdImportListInfo() {
		return idImportListInfo;
	}

	@XmlTransient
	public IdAnnotationListInfo getIdAnnotationListInfo() {
		return idAnnotationListInfo;
	}

	@XmlTransient
	public boolean isFileExistsDelete() {
		return fileExistsDelete;
	}

}
